import { Map } from 'immutable'

/**
 * 格式化值
 * @param data
 * @param key
 * @param defaultValue
 * @returns {string|*}
 */
export function formatValue (data, key, defaultValue = '--') {
  if (data && key && Map.isMap(data)) {
    const value = data.get(key)
    if (value === Infinity) {
      return defaultValue
    }
    if (value || value === 0 || value === false) {
      return value
    }
  }
  return defaultValue
}

/**
 * 获取合约价格小数位数
 * @param contract
 */
export function getContractPriceDecimalNumber (contract) {
  const tick = `${formatValue(contract, 'PriceTick', '0.00')}`
  const index = tick.indexOf('.')
  let decimal = 0
  if (index > -1) {
    decimal = tick.substr(index + 1).length
  }
  return decimal
}

/**
 * 格式化小数位数
 * @param value
 * @param decimal
 * @returns {string|*}
 */
export function formatDecimal (value, decimal = 3) {
  if (typeof (+value) === 'number') {
    return (+value).toFixed(decimal)
  }
  return value
}

/**
 * 格式化合约价格小数位数
 * @param contract
 * @param value
 * @returns {string|*}
 */
export function formatContractPriceDecimal (contract, value) {
  if (value !== '--') {
    const decimal = getContractPriceDecimalNumber(contract)
    return formatDecimal(+value, decimal)
  }
  return value
}
